package com.bt.lms.dao.servise;

import com.bt.lms.bo.QueryCourseCondition;
import com.bt.lms.entity.CourseInfo;
import com.bt.lms.entity.page.Page;

/**
 * 课程信息Dao
 *
 * @author 李鹏
 */
public interface CourseInfoDao {

    /**
     * 添加课程信息
     * @param sql 要执行的sql
     * @param courseInfo 课程信息
     * @return 受影响的行数
     */
    public int insert(String sql, CourseInfo courseInfo) throws Exception;

    /**
     * 查看课程信息
     * @param sql 要执行的sql
     * @param id 课程信息id
     * @return 课程信息
     */
    public CourseInfo select(String sql,Long id) throws Exception;

    /**
     * 编辑课程信息
     * @param sql 要执行的sql
     * @param id 课程信息id
     * @param courseInfo 课程信息
     * @return 是否成功
     */
    public boolean update(String sql,Long id,CourseInfo courseInfo) throws Exception;

    /**
     * 删除课程信息
     * @param sql 要执行的sql
     * @param id 课程信息id
     * @return 是否成功
     */
    public boolean delete(String sql,Long id) throws Exception;

    /**
     * 启用课程
     * @param sql 要执行的sql
     * @param id 课程信息id
     * @return 是否成功
     */
    public boolean updateStart(String sql, Long id) throws Exception;

    /**
     * 停用课程
     * @param sql 要执行的sql
     * @param id 课程信息id
     * @return 是否成功
     */
    public boolean updateStop(String sql, Long id) throws Exception;


    /**
     * 新增并启用课程
     * @param addSql 要执行的sql
     * @param updateSql 要执行的sql
     * @param courseInfo 课程信息
     * @param id 课程信息id
     * @return 是否成功
     */
    public boolean addAndUpdateStart(String addSql,String updateSql,CourseInfo courseInfo,Long id) throws Exception;

    /**
     * 分页条件查询课程信息
     * @param sql 查询课程信息的sql
     * @param page 分页模型
     * @return 带有数据的分页模型
     */
    public Page<CourseInfo> pageQuery(String sql, Page<CourseInfo> page);


}
